﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Access.PowerTools.Settings;

namespace Access.PowerTools.AbstractionLayer
{
    public interface IHostComunicationBridge
    {
        string ApplicationName { get; }

        string ApplicationVersion { get; }

        AccessDatabase CurrentDatabase { get; }
        
        string CurrentDatabaseFullPath { get; }

        List<AccessDatabaseObjectInfo> GetObjectsList();

        void SaveAsText(
              AccessDataBaseObjectTypeEnumeration objectType,
              string objectName,
              string backUpFileFullPath);

        bool ObjectExists(
              AccessDataBaseObjectTypeEnumeration objectType,
              string objectName);

        void LoadFromText(
             AccessDataBaseObjectTypeEnumeration objectType,
             string objectName,
             string backUpFileFullPath);


        bool StartHostApplication();
        bool QuitHostApplication();
        bool OpenCurrentDatabase(string databaseFullPath);
        bool CloseCurrentDatabase();
        bool CompactCurrentDatabase();
    }
}
